package com.alibaba.citrus.ots.sales.plan.functions.ability.model;


import java.io.Serializable;
import java.util.Objects;

/**
 * @author luyi
 * @date 2021/9/20 8:19 下午
 */
public class SalesPlanStatRequest implements Serializable {

    private static final long serialVersionUID = 7070539040076319185L;
//    /**
//     * 操作类型
//     *
//     */
//    private SalesPlanStatActiveTypeEnum activeTypeEnum;
    /**
     * 计划ID
     */
    private String planId;
    /**
     * 计划明细ID
     */
    private String detailId;
    /**
     * 调整任务ID
     */
    private String adjustId;
    /**
     * 业务渠道编码
     */
    private String channelCode;
    /**
     * 业务单元
     */
    private String orgBusinessUnitCode;
    /**
     * 销售组织
     */
    private String orgSalesOrganizationCode;
    /**
     * 销售渠道
     */
    private String orgSalesChannelCode;
    /**
     * 销售部门
     */
    private String orgSalesDepartmentCode;
    /**
     * 客户编码
     */
    private String customerCode;
    /**
     * 客户地址
     */
    private String customerAddress;
    /**
     * 负责客户的业务员
     */
    private String manageEmployeeId;
    /**
     * 货品ID
     */
    private String scItemId;
    /**
     * 货品组
     */
    private String scItemGroup;
    /**
     * 货品叶子类目
     */
    private String scItemLeafCategoryId;
    /**
     * 货品根目录
     */
    private String scItemRootCategoryId;
    /**
     * 出库价
     */
    private Long outboundPrice;
    /**
     * 到岸价
     */
    private Long costInsuranceFreight;
    /**
     * 折扣价
     */
    private Long estimatedDiscountPrice;
    /**
     * 基本单位
     */
    private String basicUnit;
    /**
     * 新增，删除的有具体的合同数，编辑的同数量是0
     * 新增的是正数，删除的是负数
     * 当前明细的客户地址货品月合同量
     */
    private Integer monthContractCount;
    /**
     * 新增，删除的有具体的合同金额，编辑的同数金额是0
     * 新增的是正数，删除的是负数
     * 当前明细的客户地址货品月合同金额
     */
    private Long monthContractMoney;

    /**
     *
     * 计划量 = monthFirstCount + monthMiddleCount + monthLastCount
     */
    private Integer monthCount;

    /**
     * 计划金额
     */
    private Long monthMoney;


    /**
     * 具体变化值 分正负
     * 上旬计划量
     */
    private Integer monthFirstCount;


    /**
     * 中旬计划量
     */
    private Integer monthMiddleCount;


    /**
     * 下旬计划量
     */
    private Integer monthLastCount;

    /**
     * m1滚动计划量
     */
    private Integer m1RollingPlanCount;

    /**
     * m2滚动计划量
     */
    private Integer m2RollingPlanCount;

    /**
     * m3滚动计划量
     */
    private Integer m3RollingPlanCount;
    /**
     * 货品名称
     */
    private String scItemName;

    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 客户地址类型，1：店地址 2：仓地址
     */
    private String bondType;
    /**
     * 客户地址详情
     */
    private String customerAddressName;


    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        SalesPlanStatRequest that = (SalesPlanStatRequest) o;
        return Objects.equals(adjustId, that.adjustId) && Objects.equals(channelCode, that.channelCode) && Objects.equals(orgBusinessUnitCode, that.orgBusinessUnitCode) && Objects.equals(orgSalesOrganizationCode, that.orgSalesOrganizationCode) && Objects.equals(orgSalesChannelCode, that.orgSalesChannelCode) && Objects.equals(orgSalesDepartmentCode, that.orgSalesDepartmentCode) && Objects.equals(customerCode, that.customerCode) && Objects.equals(customerAddress, that.customerAddress) && Objects.equals(manageEmployeeId, that.manageEmployeeId) && Objects.equals(scItemId, that.scItemId) && Objects.equals(scItemGroup, that.scItemGroup) && Objects.equals(scItemLeafCategoryId, that.scItemLeafCategoryId) && Objects.equals(scItemRootCategoryId, that.scItemRootCategoryId) && Objects.equals(outboundPrice, that.outboundPrice) && Objects.equals(costInsuranceFreight, that.costInsuranceFreight) && Objects.equals(estimatedDiscountPrice, that.estimatedDiscountPrice) && Objects.equals(basicUnit, that.basicUnit) && Objects.equals(monthContractCount, that.monthContractCount) && Objects.equals(monthContractMoney, that.monthContractMoney) && Objects.equals(monthCount, that.monthCount) && Objects.equals(monthMoney, that.monthMoney) && Objects.equals(monthFirstCount, that.monthFirstCount) && Objects.equals(monthMiddleCount, that.monthMiddleCount) && Objects.equals(monthLastCount, that.monthLastCount);
    }

    @Override
    public int hashCode() {
        return Objects.hash(planId, detailId, adjustId, channelCode, orgBusinessUnitCode, orgSalesOrganizationCode, orgSalesChannelCode, orgSalesDepartmentCode, customerCode, customerAddress, manageEmployeeId, scItemId, scItemGroup, scItemLeafCategoryId, scItemRootCategoryId, outboundPrice, costInsuranceFreight, estimatedDiscountPrice, basicUnit, monthContractCount, monthContractMoney, monthCount, monthMoney, monthFirstCount, monthMiddleCount, monthLastCount);
    }

    public String getPlanId() {
        return planId;
    }

    public void setPlanId(String planId) {
        this.planId = planId;
    }

    public String getDetailId() {
        return detailId;
    }

    public void setDetailId(String detailId) {
        this.detailId = detailId;
    }

    public String getAdjustId() {
        return adjustId;
    }

    public void setAdjustId(String adjustId) {
        this.adjustId = adjustId;
    }

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    public String getOrgBusinessUnitCode() {
        return orgBusinessUnitCode;
    }

    public void setOrgBusinessUnitCode(String orgBusinessUnitCode) {
        this.orgBusinessUnitCode = orgBusinessUnitCode;
    }

    public String getOrgSalesOrganizationCode() {
        return orgSalesOrganizationCode;
    }

    public void setOrgSalesOrganizationCode(String orgSalesOrganizationCode) {
        this.orgSalesOrganizationCode = orgSalesOrganizationCode;
    }

    public String getOrgSalesChannelCode() {
        return orgSalesChannelCode;
    }

    public void setOrgSalesChannelCode(String orgSalesChannelCode) {
        this.orgSalesChannelCode = orgSalesChannelCode;
    }

    public String getOrgSalesDepartmentCode() {
        return orgSalesDepartmentCode;
    }

    public void setOrgSalesDepartmentCode(String orgSalesDepartmentCode) {
        this.orgSalesDepartmentCode = orgSalesDepartmentCode;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getCustomerAddress() {
        return customerAddress;
    }

    public void setCustomerAddress(String customerAddress) {
        this.customerAddress = customerAddress;
    }

    public String getManageEmployeeId() {
        return manageEmployeeId;
    }

    public void setManageEmployeeId(String manageEmployeeId) {
        this.manageEmployeeId = manageEmployeeId;
    }

    public String getScItemId() {
        return scItemId;
    }

    public void setScItemId(String scItemId) {
        this.scItemId = scItemId;
    }

    public String getScItemGroup() {
        return scItemGroup;
    }

    public void setScItemGroup(String scItemGroup) {
        this.scItemGroup = scItemGroup;
    }

    public String getScItemLeafCategoryId() {
        return scItemLeafCategoryId;
    }

    public void setScItemLeafCategoryId(String scItemLeafCategoryId) {
        this.scItemLeafCategoryId = scItemLeafCategoryId;
    }

    public String getScItemRootCategoryId() {
        return scItemRootCategoryId;
    }

    public void setScItemRootCategoryId(String scItemRootCategoryId) {
        this.scItemRootCategoryId = scItemRootCategoryId;
    }

    public Long getOutboundPrice() {
        return outboundPrice;
    }

    public void setOutboundPrice(Long outboundPrice) {
        this.outboundPrice = outboundPrice;
    }

    public Long getCostInsuranceFreight() {
        return costInsuranceFreight;
    }

    public void setCostInsuranceFreight(Long costInsuranceFreight) {
        this.costInsuranceFreight = costInsuranceFreight;
    }

    public Long getEstimatedDiscountPrice() {
        return estimatedDiscountPrice;
    }

    public void setEstimatedDiscountPrice(Long estimatedDiscountPrice) {
        this.estimatedDiscountPrice = estimatedDiscountPrice;
    }

    public String getBasicUnit() {
        return basicUnit;
    }

    public void setBasicUnit(String basicUnit) {
        this.basicUnit = basicUnit;
    }

    public Integer getMonthContractCount() {
        if (monthContractCount == null){
            return 0;
        }
        return monthContractCount;
    }

    public void setMonthContractCount(Integer monthContractCount) {
        this.monthContractCount = monthContractCount;
    }

    public Long getMonthContractMoney() {
        if (monthContractMoney == null){
            return 0L;
        }
        return monthContractMoney;
    }

    public void setMonthContractMoney(Long monthContractMoney) {
        this.monthContractMoney = monthContractMoney;
    }

    public Integer getMonthCount() {
        if (monthCount == null){
            return 0;
        }
        return monthCount;
    }

    public void setMonthCount(Integer monthCount) {
        this.monthCount = monthCount;
    }

    public Long getMonthMoney() {
        if (monthMoney == null){
            return 0L;
        }
        return monthMoney;
    }

    public void setMonthMoney(Long monthMoney) {
        this.monthMoney = monthMoney;
    }

    public Integer getMonthFirstCount() {
        if (monthFirstCount == null){
            return 0;
        }
        return monthFirstCount;
    }

    public void setMonthFirstCount(Integer monthFirstCount) {
        this.monthFirstCount = monthFirstCount;
    }

    public Integer getMonthMiddleCount() {
        if (monthMiddleCount == null){
            return 0;
        }
        return monthMiddleCount;
    }

    public void setMonthMiddleCount(Integer monthMiddleCount) {
        this.monthMiddleCount = monthMiddleCount;
    }

    public Integer getMonthLastCount() {
        if (monthLastCount == null){
            return 0;
        }
        return monthLastCount;
    }

    public void setMonthLastCount(Integer monthLastCount) {
        this.monthLastCount = monthLastCount;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getBondType() {
        return bondType;
    }

    public void setBondType(String bondType) {
        this.bondType = bondType;
    }

    public String getCustomerAddressName() {
        return customerAddressName;
    }

    public void setCustomerAddressName(String customerAddressName) {
        this.customerAddressName = customerAddressName;
    }

    public Integer getM1RollingPlanCount() {
        if (m1RollingPlanCount == null){
            return 0;
        }
        return m1RollingPlanCount;
    }

    public void setM1RollingPlanCount(Integer m1RollingPlanCount) {
        this.m1RollingPlanCount = m1RollingPlanCount;
    }

    public Integer getM2RollingPlanCount() {
        if (m2RollingPlanCount == null){
            return 0;
        }
        return m2RollingPlanCount;
    }

    public void setM2RollingPlanCount(Integer m2RollingPlanCount) {
        this.m2RollingPlanCount = m2RollingPlanCount;
    }

    public Integer getM3RollingPlanCount() {
        if (m3RollingPlanCount == null){
            return 0;
        }
        return m3RollingPlanCount;
    }

    public void setM3RollingPlanCount(Integer m3RollingPlanCount) {
        this.m3RollingPlanCount = m3RollingPlanCount;
    }

    public String getScItemName() {
        return scItemName;
    }

    public void setScItemName(String scItemName) {
        this.scItemName = scItemName;
    }
}
